/*================================================================
*   Copyright (C) 2025 baichao All rights reserved.
*
*   文件名称：file_handler.c
*   创 建 者：baichao
*   创建日期：2025年01月04日
*   描    述：
*
================================================================*/

#include <stdio.h>
#include <string.h>

#include "humble_object/file_handler.h"

bool read_file_impl(const char *file_path, char *buffer, size_t buffer_size) {
  FILE *file = fopen(file_path, "r");
  if (!file) {
    return false;  // 文件打开失败
  }

  size_t read_size = fread(buffer, 1, buffer_size - 1, file);
  fclose(file);

  if (read_size == 0) {
    return false;  // 未读取到内容
  }

  buffer[read_size] = '\0';  // 确保字符串以NULL结尾
  return true;
}

FileHandler *create_file_handler() {
  static FileHandler handler = {read_file_impl};
  return &handler;
}
